using UnityEngine;
using QFramework;
using QFramework.Example;

namespace ProjectSurvivor
{
	public partial class SimpleAxe : ViewController//投掷胶囊体
	{
		//当前秒数
		private float mCurrentSeconds = 0;
		void Update()
		{
			mCurrentSeconds += Time.deltaTime;
			if (mCurrentSeconds >= 1.0f)
			{
				//创建斧头
				Axe.Instantiate()
				.Show()
				//同步位置
				.Position(this.Position())
				//自定义操作
				.Self(self =>//在创建斧头后对它进行自定义操作
				{
					//获取刚体
					var rigidbody2D = self.GetComponent<Rigidbody2D>();
					var randomX = RandomUtility.Choose(-8, -5, -3, -3, 5, 8);//随机选择一个X轴的速度
					var randomY = RandomUtility.Choose(3, 5, 8);//随机选择一个Y轴的速度
					rigidbody2D.velocity = new Vector2(randomX, randomY);//给斧头一个随机向量
					self.OnTriggerExit2DEvent(collider =>  //碰撞离开时
					{
						var hurtBox = collider.GetComponent<HurtBox>();
						if (hurtBox)
						{
							if (hurtBox.Owner.CompareTag("Enemy"))
							{
								hurtBox.Owner.GetComponent<Enemy>().Hurt(2);
							}
						}
					}).UnRegisterWhenGameObjectDestroyed(self);//// 在斧头对象销毁时注销事件
					ActionKit.OnUpdate.Register(() =>   // 注册每帧更新的操作
					{
						if (Player.Default)
						{
							//如果玩家存在，并且玩家的位置Y轴-斧头的位置Y轴大于15
							if (Player.Default.Position().y - self.Position().y > 15)
							{
								self.DestroySelfGracefully();//// 销毁斧头对象
							}
						}
					}).UnRegisterWhenGameObjectDestroyed(self);// 在斧头对象销毁时注销更新操作
				});
			}
			//重置当前秒数
			mCurrentSeconds = 0;
		}
	}
}
